<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css">
  <script src='../bbs.js'></script>

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120820034-1"></script>

  <link href="../bbs.css" type="text/css" rel="stylesheet">
  <link rel="shortcut icon" href="/favicon.ico">
  <title>英単語の先頭を大文字化、以降を小文字化 | サクラエディタ過去ログ</title>
</head>
<body>
<ul class="side">
        <a href="./" class="toindex">◀一般トップへ</a>
        <li><div class="list-title">
    <span class="no">6728</span>
    <a class="thread-title" href="6728.html#6728">英単語の先頭を大文字化、以降を小文字化</a></div>
    <ul><li><div class="list-title">
    <span class="no">6732</span>
    <a class="thread-title" href="6728.html#6732">Re:英単語の先頭を大文字化、以降を小文字化</a></div>
    </li><li><div class="list-title">
    <span class="no">6733</span>
    <a class="thread-title" href="6728.html#6733">Re:英単語の先頭を大文字化、以降を小文字化</a></div>
    <ul><li><div class="list-title">
    <span class="no">6734</span>
    <a class="thread-title" href="6728.html#6734">Re2:英単語の先頭を大文字化、以降を小文字化</a></div>
    <ul><li><div class="list-title">
    <span class="no">6735</span>
    <a class="thread-title" href="6728.html#6735">Re3:英単語の先頭を大文字化、以降を小文字化</a></div>
    <ul><li><div class="list-title">
    <span class="no">6736</span>
    <a class="thread-title" href="6728.html#6736">Re4:英単語の先頭を大文字化、以降を小文字化</a></div>
    <ul><li><div class="list-title">
    <span class="no">6738</span>
    <a class="thread-title" href="6728.html#6738">Re5:英単語の先頭を大文字化、以降を小文字化</a></div>
    <ul><li><div class="list-title">
    <span class="no">6739</span>
    <a class="thread-title" href="6728.html#6739">Re6:英単語の先頭を大文字化、以降を小文字化</a></div>
    <ul><li><div class="list-title">
    <span class="no">6740</span>
    <a class="thread-title" href="6728.html#6740">Re7:英単語の先頭を大文字化、以降を小文字化</a></div>
    <ul><li><div class="list-title">
    <span class="no">6741</span>
    <a class="thread-title" href="6728.html#6741">Re8:英単語の先頭を大文字化、以降を小文字化</a></div>
    <ul><li><div class="list-title">
    <span class="no">6743</span>
    <a class="thread-title" href="6728.html#6743">Re9:英単語の先頭を大文字化、以降を小文字化</a></div>
    </li><li><div class="list-title">
    <span class="no">6744</span>
    <a class="thread-title" href="6728.html#6744">Re9:英単語の先頭を大文字化、以降を小文字化</a></div>
    </li></ul></li><li><div class="list-title">
    <span class="no">6742</span>
    <a class="thread-title" href="6728.html#6742">Re8:英単語の先頭を大文字化、以降を小文字化</a></div>
    <ul><li><div class="list-title">
    <span class="no">6745</span>
    <a class="thread-title" href="6728.html#6745">Re9:英単語の先頭を大文字化、以降を小文字化</a></div>
    </li></ul></li></ul></li></ul></li><li><div class="list-title">
    <span class="no">6747</span>
    <a class="thread-title" href="6728.html#6747">Re6:英単語の先頭を大文字化、以降を小文字化</a></div>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li>
    </ul><ul class="main"><li><section><h1 id=6728>
    <span class="no">[6728]</span>
    <a class="thread-title" href="#6728">英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">msk</span>
    <time datetime="2008-07-23T14:17:29">2008年07月23日 14:17</time></h1>
    <div class="body">変換メニュー、マクロないし正規表現置換等で題名の変換機能が可能かどうか模索しております。ご存知の方がいらっしゃいましたらご教授お願い致します。</div></section>
    <ul><li><section><h1 id=6732>
    <span class="no">[6732]</span>
    <a class="thread-title" href="#6732">Re:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">まりこ</span>
    <time datetime="2008-07-25T07:52:21">2008年07月25日 07:52</time></h1>
    <div class="body">▼ mskさん<br>&gt; 変換メニュー、マクロないし正規表現置換等で題名の変換機能が可能かどうか模索しております。ご存知の方がいらっしゃいましたらご教授お願い致します。<br>わたしの場合、サクラで読み込んだファイルをxyzzyに送り、<br>先頭を大文字化して、サクラで再読込をして、編集しています、</div></section>
    </li><li><section><h1 id=6733>
    <span class="no">[6733]</span>
    <a class="thread-title" href="#6733">Re:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">なすこじ</span>
    <time datetime="2008-07-25T19:01:31">2008年07月25日 19:01</time></h1>
    <div class="body">以下のようなマクロでどうでしょうか？<br><br>S_SearchNext( '\b[a-zA-Z]', 22 )<br>S_ToUpper()<br>S_SearchNext( '(?&lt;=[a-zA-Z])[a-zA-Z]+\b', 22 )<br>S_ToLower()<br></div></section>
    <ul><li><section><h1 id=6734>
    <span class="no">[6734]</span>
    <a class="thread-title" href="#6734">Re2:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">なすこじ</span>
    <time datetime="2008-07-26T10:41:11">2008年07月26日 10:41</time></h1>
    <div class="body">単語がaとか1文字だと直後の動きが変ですね。<br>2個目のS_SearchNextの +\b の所は *\b の方が良いようです。</div></section>
    <ul><li><section><h1 id=6735>
    <span class="no">[6735]</span>
    <a class="thread-title" href="#6735">Re3:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">msk</span>
    <time datetime="2008-07-27T23:11:16">2008年07月27日 23:11</time></h1>
    <div class="body">▼ なすこじさん<br>&gt; 単語がaとか1文字だと直後の動きが変ですね。<br>&gt; 2個目のS_SearchNextの +\b の所は *\b の方が良いようです。<br><br>ご親切にありがとうございます。<br>ご教示頂いた文字列を.macで保存したんですが、候補が黄色くハイライトされただけで変換の処理が完了しません。<br>やり方が不明なのでこちらもお手数ですが教えて頂けますか？</div></section>
    <ul><li><section><h1 id=6736>
    <span class="no">[6736]</span>
    <a class="thread-title" href="#6736">Re4:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">なすこじ</span>
    <time datetime="2008-07-28T02:33:52">2008年07月28日 02:33</time></h1>
    <div class="body">.macのファイルにしてキー割り当てでCtrl+F4に割り当てただけです。<br>正規表現ライブラリは鬼車です。<br>ライブラリのバージョンはv1.4.3でもv2.0.0 beta9でもOKでした。<br><br>実行時のカーソル位置の問題ではないでしょうか？<br>カーソル位置以降の文字列が対象となりますから、ターゲットの文字列より前にカーソルを移動して下さい。<br><br></div></section>
    <ul><li><section><h1 id=6738>
    <span class="no">[6738]</span>
    <a class="thread-title" href="#6738">Re5:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">msk</span>
    <time datetime="2008-07-28T13:34:08">2008年07月28日 13:34</time></h1>
    <div class="body">▼ なすこじさん<br>&gt; .macのファイルにしてキー割り当てでCtrl+F4に割り当てただけです。<br>&gt; 正規表現ライブラリは鬼車です。<br>&gt; ライブラリのバージョンはv1.4.3でもv2.0.0 beta9でもOKでした。<br>&gt; <br>&gt; 実行時のカーソル位置の問題ではないでしょうか？<br>&gt; カーソル位置以降の文字列が対象となりますから、ターゲットの文字列より前にカーソルを移動して下さい。<br>&gt; <br><br>処理できました。ありがとうございます。<br><br>…ただ欲を言いますと、範囲指定した部分の英単語の先頭文字全てについて処理を行えるようにしたいのですが、それは可能ですか？(最初に質問の時に記載すべきでしたね、申し訳ないです)</div></section>
    <ul><li><section><h1 id=6739>
    <span class="no">[6739]</span>
    <a class="thread-title" href="#6739">Re6:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">なすこじ</span>
    <time datetime="2008-07-29T02:19:22">2008年07月29日 02:19</time></h1>
    <div class="body">▼ mskさん<br>&gt; …ただ欲を言いますと、範囲指定した部分の英単語の先頭文字全てについて処理を行えるようにしたいのですが、それは可能ですか？(最初に質問の時に記載すべきでしたね、申し訳ないです)<br><br>予想していた中で最も面倒なパターンです (^^;<br><br>できます、の一言で終わらせるのも何なので作ってみました。<br>キーマクロではもう無理なので今回はppaを使用しています。<br><br>&gt;&gt;macro:430 を参照してください。<br></div></section>
    <ul><li><section><h1 id=6740>
    <span class="no">[6740]</span>
    <a class="thread-title" href="#6740">Re7:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">msk</span>
    <time datetime="2008-07-30T10:49:40">2008年07月30日 10:49</time></h1>
    <div class="body">▼ なすこじさん<br>&gt; ▼ mskさん<br>&gt; &gt; …ただ欲を言いますと、範囲指定した部分の英単語の先頭文字全てについて処理を行えるようにしたいのですが、それは可能ですか？(最初に質問の時に記載すべきでしたね、申し訳ないです)<br>&gt; <br>&gt; 予想していた中で最も面倒なパターンです (^^;<br>&gt; <br>&gt; できます、の一言で終わらせるのも何なので作ってみました。<br>&gt; キーマクロではもう無理なので今回はppaを使用しています。<br>&gt; <br>&gt; &gt;&gt;macro:430 を参照してください。<br><br>ありがとうございました！<br><br>単語の数が多いほど、処理に随分時間がかかってしまうんですね…。xyzzyやTeraPadのプラグインでできるように、単語数に関わらず一瞬で全て処理を終えるのって、難しいことなんですかね？？</div></section>
    <ul><li><section><h1 id=6741>
    <span class="no">[6741]</span>
    <a class="thread-title" href="#6741">Re8:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">なすこじ</span>
    <time datetime="2008-07-30T18:54:09">2008年07月30日 18:54</time></h1>
    <div class="body">▼ mskさん<br>&gt; 単語の数が多いほど、処理に随分時間がかかってしまうんですね…。xyzzyやTeraPadのプラグインでできるように、単語数に関わらず一瞬で全て処理を終えるのって、難しいことなんですかね？？<br><br>そんなに難しくはないですよ。上では回りくどい方法を取ってますが (^^;<br>ActivePerlをインストールすれば下記で簡単にできます。<br>ただ、矩形選択は不可なのと、単語の途中が選択されていてもお構いなしに選択部分をキャピタライズします。<br><br># Capitalize.pls<br>$str = $Editor-&gt;GetSelectedString();<br>if( !$str ){ exit; }<br>$str =~ s/(\b)([a-zA-Z]+)(\b)/$1\u\L$2$3/g;<br>$Editor-&gt;InsText( $str );<br></div></section>
    <ul><li><section><h1 id=6743>
    <span class="no">[6743]</span>
    <a class="thread-title" href="#6743">Re9:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">なすこじ</span>
    <time datetime="2008-07-30T19:25:24">2008年07月30日 19:25</time></h1>
    <div class="body">選択範囲に全角英字があると変になるかも？と書きにきたらryojiさんがJScriptで書いてくれてますね。<br>Perlを入れる必要も無いのでjs版の方がお勧めです。<br><br>あと私の正規表現は変ですね (^^;<br>/(\w+)/\u\L$1/g で十分なのかな？<br></div></section>
    </li><li><section><h1 id=6744>
    <span class="no">[6744]</span>
    <a class="thread-title" href="#6744">Re9:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">msk</span>
    <time datetime="2008-08-01T16:46:09">2008年08月01日 16:46</time></h1>
    <div class="body">▼ なすこじさん<br>&gt; ▼ mskさん<br>&gt; &gt; 単語の数が多いほど、処理に随分時間がかかってしまうんですね…。xyzzyやTeraPadのプラグインでできるように、単語数に関わらず一瞬で全て処理を終えるのって、難しいことなんですかね？？<br>&gt; <br>&gt; そんなに難しくはないですよ。上では回りくどい方法を取ってますが (^^;<br>&gt; ActivePerlをインストールすれば下記で簡単にできます。<br>&gt; ただ、矩形選択は不可なのと、単語の途中が選択されていてもお構いなしに選択部分をキャピタライズします。<br>&gt; <br>&gt; # Capitalize.pls<br>&gt; $str = $Editor-&gt;GetSelectedString();<br>&gt; if( !$str ){ exit; }<br>&gt; $str =~ s/(\b)([a-zA-Z]+)(\b)/$1\u\L$2$3/g;<br>&gt; $Editor-&gt;InsText( $str );<br><br><br>ありがとうございます。どうしても、TeraPad(+プラグイン)を使っていた時と同様の処理時間を求めてしまい…。でも、それ以外の機能はsakuraの方が断然上なので、こちらでキャピタライズが即効性のあるものであればいいんですが…。</div></section>
    </li></ul></li><li><section><h1 id=6742>
    <span class="no">[6742]</span>
    <a class="thread-title" href="#6742">Re8:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">ryoji</span>
    <time datetime="2008-07-30T18:57:45">2008年07月30日 18:57</time></h1>
    <div class="body">下の例のように JScript の replace() を使うほうが高速になるかも…です。<br>IE5.5以上の環境なら動くと思います。<br><br>// Capitalize.js<br>if (Editor.IsTextSelected() == 1) {<br>    var s = Editor.GetSelectedString(0);<br>    s = s.replace(<br>            /\w+/g,<br>            function($0) {<br>                return $0.substr(0, 1).toUpperCase() + $0.substr(1).toLowerCase();<br>            }<br>        );<br>    Editor.InsText(s);<br>}<br><br>非選択や矩形選択のときは何もしていません。<br>必要なら適当に処理追加してみてください。(^^;</div></section>
    <ul><li><section><h1 id=6745>
    <span class="no">[6745]</span>
    <a class="thread-title" href="#6745">Re9:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">msk</span>
    <time datetime="2008-08-01T16:48:19">2008年08月01日 16:48</time></h1>
    <div class="body">▼ ryoji様<br>&gt; 下の例のように JScript の replace() を使うほうが高速になるかも…です。<br>&gt; IE5.5以上の環境なら動くと思います。<br>&gt; <br>&gt; // Capitalize.js<br>&gt; if (Editor.IsTextSelected() == 1) {<br>&gt;     var s = Editor.GetSelectedString(0);<br>&gt;     s = s.replace(<br>&gt;             /\w+/g,<br>&gt;             function($0) {<br>&gt;                 return $0.substr(0, 1).toUpperCase() + $0.substr(1).toLowerCase();<br>&gt;             }<br>&gt;         );<br>&gt;     Editor.InsText(s);<br>&gt; }<br>&gt; <br>&gt; 非選択や矩形選択のときは何もしていません。<br>&gt; 必要なら適当に処理追加してみてください。(^^;<br><br><br>試してみました。確かに、こちらの方が明らかに処理が早いですね！自分が希望する高速処理のキャピタライズ機能が実装される日が来るまで(笑)、こちらを活用させて頂きます。<br><br>なすこじ様共々、ご回答ありがとうございました！</div></section>
    </li></ul></li></ul></li></ul></li><li><section><h1 id=6747>
    <span class="no">[6747]</span>
    <a class="thread-title" href="#6747">Re6:英単語の先頭を大文字化、以降を小文字化</a>
    <span class="author">すい</span>
    <time datetime="2008-08-16T02:59:12">2008年08月16日 02:59</time></h1>
    <div class="body">&gt;…ただ欲を言いますと、範囲指定した部分の英単語の先頭文字全てについて処理を行えるようにしたいのですが、それは可能ですか？(最初に質問の時に記載すべきでしたね、申し訳ないです)<br><br>.MAC のキーボードマクロで可能ですね、別に処理内容のスマートさを求める必要ないなら。<br>冗談のような力技かも、ですが、置換26個くらい並べても どうって事ないかと。<br>----------<br>//キーボードマクロのファイル<br><br>// 範囲選択してから実行する。<br>// 選択範囲内の英単語の先頭を大文字に２文字目以降を小文字にする。<br><br>// 先に全て小文字に変換する。<br>S_ToLower(0);&#9;// 小文字<br><br>// 英単語の先頭を大文字にする。<br>// 148(10進数) = 1001.0100(2進数)<br>// bit7：0=ファイル全体 / 1=選択範囲<br>// bit4：置換ダイアログを自動的に閉じる<br>// bit2：正規表現<br>S_ReplaceAll('\ba','A',148);&#9;//<br>S_ReplaceAll('\bb','B',148);&#9;//<br>S_ReplaceAll('\bc','C',148);&#9;//<br>S_ReplaceAll('\bd','D',148);&#9;//<br>S_ReplaceAll('\be','E',148);&#9;//<br>S_ReplaceAll('\bf','F',148);&#9;//<br>S_ReplaceAll('\bg','G',148);&#9;//<br>S_ReplaceAll('\bh','H',148);&#9;//<br>S_ReplaceAll('\bi','I',148);&#9;//<br>S_ReplaceAll('\bj','J',148);&#9;//<br>S_ReplaceAll('\bk','K',148);&#9;//<br>S_ReplaceAll('\bl','L',148);&#9;//<br>S_ReplaceAll('\bm','M',148);&#9;//<br>S_ReplaceAll('\bn','N',148);&#9;//<br>S_ReplaceAll('\bo','O',148);&#9;//<br>S_ReplaceAll('\bp','P',148);&#9;//<br>S_ReplaceAll('\bq','Q',148);&#9;//<br>S_ReplaceAll('\br','R',148);&#9;//<br>S_ReplaceAll('\bs','S',148);&#9;//<br>S_ReplaceAll('\bt','T',148);&#9;//<br>S_ReplaceAll('\bu','U',148);&#9;//<br>S_ReplaceAll('\bv','V',148);&#9;//<br>S_ReplaceAll('\bw','W',148);&#9;//<br>S_ReplaceAll('\bx','X',148);&#9;//<br>S_ReplaceAll('\by','Y',148);&#9;//<br>S_ReplaceAll('\bz','Z',148);&#9;//<br><br>S_ReDraw(0);&#9;// 再描画<br></div></section>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></body></html>